home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
language
/
xlisp_21.zoo
/
xlftab.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-02-28
|
17KB
|
460 lines
/* xlftab.c - xlisp function table */
/* Copyright (c) 1985, by David Michael Betz
All Rights Reserved
Permission is granted for unrestricted non-commercial use */
#include "xlisp.h"
/* external functions */
extern LVAL
xbisubr(),xbifsubr(),
rmhash(),rmquote(),rmdquote(),rmbquote(),rmcomma(),
clnew(),clisnew(),clanswer(),
obisnew(),obclass(),obshow(),
rmlpar(),rmrpar(),rmsemi(),
xeval(),xapply(),xfuncall(),xquote(),xfunction(),xbquote(),
xlambda(),xset(),xsetq(),xsetf(),xdefun(),xdefmacro(),
xgensym(),xmakesymbol(),xintern(),
xsymname(),xsymvalue(),xsymplist(),
xget(),xputprop(),xremprop(),
xhash(),xmkarray(),xaref(),
xcar(),xcdr(),
xcaar(),xcadr(),xcdar(),xcddr(),
xcaaar(),xcaadr(),xcadar(),xcaddr(),
xcdaar(),xcdadr(),xcddar(),xcdddr(),
xcaaaar(),xcaaadr(),xcaadar(),xcaaddr(),
xcadaar(),xcadadr(),xcaddar(),xcadddr(),
xcdaaar(),xcdaadr(),xcdadar(),xcdaddr(),
xcddaar(),xcddadr(),xcdddar(),xcddddr(),
xcons(),xlist(),xappend(),xreverse(),xlast(),xnth(),xnthcdr(),
xmember(),xassoc(),xsubst(),xsublis(),xlength(),xsort(),
xremove(),xremif(),xremifnot(),
xmapc(),xmapcar(),xmapl(),xmaplist(),
xrplca(),xrplcd(),xnconc(),
xdelete(),xdelif(),xdelifnot(),
xatom(),xsymbolp(),xnumberp(),xboundp(),xnull(),xlistp(),xendp(),xconsp(),
xeq(),xeql(),xequal(),
xcond(),xcase(),xand(),xor(),xlet(),xletstar(),xif(),
xprog(),xprogstar(),xprog1(),xprog2(),xprogn(),xgo(),xreturn(),
xcatch(),xthrow(),
xerror(),xcerror(),xbreak(),
xcleanup(),xtoplevel(),xcontinue(),xerrset(),
xbaktrace(),xevalhook(),
xdo(),xdostar(),xdolist(),xdotimes(),
xminusp(),xzerop(),xplusp(),xevenp(),xoddp(),
xfix(),xfloat(),
xgcd(),xadd(),xsub(),xmul(),xdiv(),xrem(),xmin(),xmax(),xabs(),
xadd1(),xsub1(),xlogand(),xlogior(),xlogxor(),xlognot(),
xsin(),xcos(),xtan(),xexpt(),xexp(),xsqrt(),xrand(),
xlss(),xleq(),xequ(),xneq(),xgeq(),xgtr(),
xstrcat(),xsubseq(),xstring(),xchar(),
xread(),xprint(),xprin1(),xprinc(),xterpri(),
xflatsize(),xflatc(),
xopen(),xclose(),xrdchar(),xpkchar(),xwrchar(),xreadline(),
xload(),xtranscript(),
xtype(),xexit(),xpeek(),xpoke(),xaddrs(),
xvector(),xblock(),xrtnfrom(),xtagbody(),
xpsetq(),xflet(),xlabels(),xmacrolet(),xunwindprotect(),xpp(),
xstrlss(),xstrleq(),xstreql(),xstrneq(),xstrgeq(),xstrgtr(),
xstrilss(),xstrileq(),xstrieql(),xstrineq(),xstrigeq(),xstrigtr(),
xupcase(),xdowncase(),xnupcase(),xndowncase(),
xtrim(),xlefttrim(),xrighttrim(),
xuppercasep(),xlowercasep(),xbothcasep(),xdigitp(),xalphanumericp(),
xcharcode(),xcodechar(),xchupcase(),xchdowncase(),xdigitchar(),
xchrlss(),xchrleq(),xchreql(),xchrneq(),xchrgeq(),xchrgtr(),
xchrilss(),xchrileq(),xchrieql(),xchrineq(),xchrigeq(),xchrigtr(),
xintegerp(),xfloatp(),xstringp(),xarrayp(),xstreamp(),xobjectp(),
xwhen(),xunless(),xloop(),
xsymfunction(),xfboundp(),xsend(),xsendsuper(),
xprogv(),xrdbyte(),xwrbyte(),xformat(),
xcharp(),xcharint(),xintchar(),
xmkstrinput(),xmkstroutput(),xgetstroutput(),xgetlstoutput(),
xgetlambda(),xmacroexpand(),x1macroexpand(),
xtrace(),xuntrace(),
xdefstruct(),xmkstruct(),xcpystruct(),xstrref(),xstrset(),xstrtypep(),
xasin(),xacos(),xatan();
/* functions specific to xldmem.c */
LVAL xgc(),xexpand(),xalloc(),xmem();
#ifdef SAVERESTORE
LVAL xsave(),xrestore();
#endif
/* include system dependant definitions */
#include "osdefs.h"
/* SUBR/FSUBR indicator */
#define S SUBR
#define F FSUBR
/* forward declarations */
LVAL xnotimp();
/* the function table */
FUNDEF funtab[] = {
/* read macro functions */
{ NULL, S, rmhash }, /* 0 */
{ NULL, S, rmquote }, /* 1 */
{ NULL, S, rmdquote }, /* 2 */
{ NULL, S, rmbquote }, /* 3 */
{ NULL, S, rmcomma }, /* 4 */
{ NULL, S, rmlpar }, /* 5 */
{ NULL, S, rmrpar }, /* 6 */
{ NULL, S, rmsemi }, /* 7 */
{ NULL, S, xnotimp }, /* 8 */
{ NULL, S, xnotimp }, /* 9 */
/* methods */
{ NULL, S, clnew }, /* 10 */
{ NULL, S, clisnew }, /* 11 */
{ NULL, S, clanswer }, /* 12 */
{ NULL, S, obisnew }, /* 13 */
{ NULL, S, obclass }, /* 14 */
{ NULL, S, obshow }, /* 15 */
{ NULL, S, xnotimp }, /* 16 */
{ NULL, S, xnotimp }, /* 17 */
{ NULL, S, xnotimp }, /* 18 */
{ NULL, S, xnotimp }, /* 19 */
/* evaluator functions */
{ "EVAL", S, xeval }, /* 20 */
{ "APPLY", S, xapply }, /* 21 */
{ "FUNCALL", S, xfuncall }, /* 22 */
{ "QUOTE", F, xquote }, /* 23 */
{ "FUNCTION", F, xfunction }, /* 24 */
{ "BACKQUOTE", F, xbquote }, /* 25 */
{ "LAMBDA", F, xlambda }, /* 26 */
/* symbol functions */
{ "SET", S, xset }, /* 27 */
{ "SETQ", F, xsetq }, /* 28 */
{ "SETF", F, xsetf }, /* 29 */
{ "DEFUN", F, xdefun }, /* 30 */
{ "DEFMACRO", F, xdefmacro }, /* 31 */
{ "GENSYM", S, xgensym }, /* 32 */
{ "MAKE-SYMBOL", S, xmakesymbol }, /* 33 */
{ "INTERN", S, xintern }, /* 34 */
{ "SYMBOL-NAME", S, xsymname }, /* 35 */
{ "SYMBOL-VALUE", S, xsymvalue }, /* 36 */
{ "SYMBOL-PLIST", S, xsymplist }, /* 37 */
{ "GET", S, xget }, /* 38 */
{ "PUTPROP", S, xputprop }, /* 39 */
{ "REMPROP", S, xremprop }, /* 40 */
{ "HASH", S, xhash }, /* 41 */
/* array functions */
{ "MAKE-ARRAY", S, xmkarray }, /* 42 */
{ "AREF", S, xaref }, /* 43 */
/* list functions */
{ "CAR", S, xcar }, /* 44 */
{ "CDR", S, xcdr }, /* 45 */
{ "CAAR", S, xcaar }, /* 46 */
{ "CADR", S, xcadr }, /* 47 */
{ "CDAR", S, xcdar }, /* 48 */
{ "CDDR", S, xcddr }, /* 49 */
{ "CAAAR", S, xcaaar }, /* 50 */
{ "CAADR", S, xcaadr }, /* 51 */
{ "CADAR", S, xcadar }, /* 52 */
{ "CADDR", S, xcaddr }, /* 53 */
{ "CDAAR", S, xcdaar }, /* 54 */
{ "CDADR", S, xcdadr }, /* 55 */
{ "CDDAR", S, xcddar }, /* 56 */
{ "CDDDR", S, xcdddr }, /* 57 */
{ "CAAAAR", S, xcaaaar }, /* 58 */
{ "CAAADR", S, xcaaadr }, /* 59 */
{ "CAADAR", S, xcaadar }, /* 60 */
{ "CAADDR", S, xcaaddr }, /* 61 */
{ "CADAAR", S, xcadaar }, /* 62 */
{ "CADADR", S, xcadadr }, /* 63 */
{ "CADDAR", S, xcaddar }, /* 64 */
{ "CADDDR", S, xcadddr }, /* 65 */
{ "CDAAAR", S, xcdaaar }, /* 66 */
{ "CDAADR", S, xcdaadr }, /* 67 */
{ "CDADAR", S, xcdadar }, /* 68 */
{ "CDADDR", S, xcdaddr }, /* 69 */
{ "CDDAAR", S, xcddaar }, /* 70 */
{ "CDDADR", S, xcddadr }, /* 71 */
{ "CDDDAR", S, xcdddar }, /* 72 */
{ "CDDDDR", S, xcddddr }, /* 73 */
{ "CONS", S, xcons }, /* 74 */
{ "LIST", S, xlist }, /* 75 */
{ "APPEND", S, xappend }, /* 76 */
{ "REVERSE", S, xreverse }, /* 77 */
{ "LAST", S, xlast }, /* 78 */
{ "NTH", S, xnth }, /* 79 */
{ "NTHCDR", S, xnthcdr }, /* 80 */
{ "MEMBER", S, xmember }, /* 81 */
{ "ASSOC", S, xassoc }, /* 82 */
{ "SUBST", S, xsubst }, /* 83 */
{ "SUBLIS", S, xsublis }, /* 84 */
{ "REMOVE", S, xremove }, /* 85 */
{ "LENGTH", S, xlength }, /* 86 */
{ "MAPC", S, xmapc }, /* 87 */
{ "MAPCAR", S, xmapcar }, /* 88 */
{ "MAPL", S, xmapl }, /* 89 */
{ "MAPLIST", S, xmaplist }, /* 90 */
/* destructive list functions */
{ "RPLACA", S, xrplca }, /* 91 */
{ "RPLACD", S, xrplcd }, /* 92 */
{ "NCONC", S, xnconc }, /* 93 */
{ "DELETE", S, xdelete }, /* 94 */
/* predicate functions */
{ "ATOM", S, xatom }, /* 95 */
{ "SYMBOLP", S, xsymbolp }, /* 96 */
{ "NUMBERP", S, xnumberp }, /* 97 */
{ "BOUNDP", S, xboundp }, /* 98 */
{ "NULL", S, xnull }, /* 99 */
{ "LISTP", S, xlistp }, /* 100 */
{ "CONSP", S, xconsp }, /* 101 */
{ "MINUSP", S, xminusp }, /* 102 */
{ "ZEROP", S, xzerop }, /* 103 */
{ "PLUSP", S, xplusp }, /* 104 */
{ "EVENP", S, xevenp }, /* 105 */
{ "ODDP", S, xoddp }, /* 106 */
{ "EQ", S, xeq }, /* 107 */
{ "EQL", S, xeql }, /* 108 */
{ "EQUAL", S, xequal }, /* 109 */
/* special forms */
{ "COND", F, xcond }, /* 110 */
{ "CASE", F, xcase }, /* 111 */
{ "AND", F, xand }, /* 112 */
{ "O